Prior co-pending U.S. patent application Ser. No. 10/351,276, filed on Jan. 24, 2003, published as U.S. Published Patent Application No. 20030229834 and U.S. patent application Ser. No. 10/750,949, filed on Jan. 5, 2004, published as U.S. Published Patent No. 20040148554, both by the inventors, and U.S. patent application Ser. No. 10/355,941, filed Jan. 31, 2003, published as U.S. Published Patent Application No. 20030131298, and U.S. Pat. No. 5,991,909, filed Jan. 23, 1999, both by Rajski et. al., have demonstrated techniques to reduce digital test time and volume. The present disclosure improves on the work done in the above prior art.
Both U.S. patent application Ser. No. 10/355,941, and U.S. patent application Ser. No. 10/750,949, respectively describe forward and reverse symbolic simulations to determine the appropriate patterns to apply to their respective compression test logic. U.S. patent application Ser. No. 10/355,941 presents a forward symbolic simulation, where variables are used in place of the compressed values to be scanned into the test logic. These variables are combined with other variables into logical expressions as they pass through exclusive-or logic gates on each subsequent shift cycle. For example, if the variables A and B are on the inputs of an XOR function then the expression A XOR B would be placed on the output.
The test logic structure shown in FIG. 1, is described in U.S. patent application Ser. No. 10/351,276. U.S. patent application Ser. No. 10/750,949 presents a reverse symbolic simulation to compress test patterns that are applied to structures such as the one shown in FIG. 1. The simulation starts with the required state and simulates in reverse time to determine the compressed input states necessary to meet those required states. In this case variables are introduced or added to existing expressions on both inputs of exclusive-or gates as the required values pass through the gates in during each reverse shift. In other words, if the required value was a 1, a variable and its opposite are placed on the inputs of the exclusive-or. Similarly, if a variable A exists on the output of an exclusive-or function then a new variable B is created, and the expressions A XOR B and A XOR −B are placed on the function's inputs. This has the advantage over the forward algorithm of producing fewer, shorter expressions, significantly reducing the computation time.
Both algorithms evaluate the expressions, stopping when a set of values can be assigned to the variables in those expressions, which satisfies the corresponding required care-in states. Still, both algorithms require excessive amounts of computation when trying to solve for vectors with a large number of required care-in values, primarily because conflicts arise in the evaluation of many different equations, all containing the same variables.
As a result further improvements can be made by eliminating the expressions altogether. This improved algorithm also applies to the structure shown in FIG. 1, but in this case the evaluation of expressions can instead be done by repeatedly exclusive-oring a vector comprised of the variables shifted by the shift count of each exclusive-or in the chain, and exclusive-oring the result with the original existing vector. Repeatedly selectively setting one or more variables to known states, re-evaluating, and comparing the computed values to the required care-in states, produces the required compressed states in the vector of variables, without creating a large number of complex expressions. This technique reduces the computation time to arrive at a compressed solution, regardless of whether the simulation is in forward or reverse time. In addition, an estimator can be incorporated into this process, which rapidly determines if a solution to the large number of equations and variables is possible. Employing such an estimator and skipping over shift states that will not produce a solution can further reduce the computation time. Furthermore, by keeping track of the number of care-in locations that use each variable during the estimator's computation, it is possible to save those care-in locations that have unique variables, variables whose usage count is one, and eliminate them, in the same manner as care-in locations without variables, from the lengthy compression calculations, to be processed only after a solution for the rest of the care-in locations has been found, since we know a priori, that regardless of the states of the other variables, setting the unique variable associated with the saved care-in location to the proper state will ensure the care-in location has the correct value.
It has also been determined by the inventors that the ratio of compression is, in part, related to the number of segments created by the exclusive-or functions and the percentage of required care-ins to be set, and not the length of the scan string. Furthermore, to obtain the best compression ratios, the number of segments should increase as the as the percentage of required care-ins to be set decreases. Prior U.S. patent application Ser. No. 10/351,276, described a way to selectively enable some or all of the exclusive-or gates in a scan string, as shown in FIG. 6. Traditionally test sets require a large number of care-in inputs to be set in the initial vectors, decreasing to a very small percentage of required care-in values in the last vectors in the set. By judiciously using this selection technique, better compression can be achieved over the whole vector set. In addition, these selective enables can either be:                1) disabled to perform uncompressed scan, or        2) enabled to any level of compression, or        3) enabled for better compression.        
Furthermore, it is observed, by the inventors, that Design Engineers, who create the test logic, have little incentive to spend the time and money necessary to get better compression of their test patterns. On the other hand, Manufacturing Engineers see the direct benefits of reduced test costs when compressing the test patterns of their high volume chips. As such, the present disclosure describes a method whereby the Design Engineers can supply the hardware necessary to accept compressed patterns without compressing the patterns themselves, thereby allowing the Manufacturing Engineers to reduce their test costs when it beromes necessary to do so. In addition, the inventors describe extensions to the above selection technique, which unlock the selective enables when needed by the Manufacturing Engineers. This concept is further generalized to apply to any combination of hardware features enabled by some keys embedded in software that utilizes such key enabled features.
Also, the U.S. patent application Ser. No. 10/351,276 described a way align the compressed patterns being applied to multiple parallel scan strings, each of which requires a different number of clocks. This technique used the value on the data input on each scan string to selectively enable the scan string's clock, as shown in FIG. 7. In the prior art, the clock enable logic 76 required the data input 75 to transition from a logic 1 level a logic 0 level to enable each string's clock 70; an additional clock cycle was added to each test pattern for this transition. In the present disclosure the inventors show a way to enable each string's clock on the transition to the first value to be clocked in, saving the initial clock cycle.
A primary assumption behind this compression technology is to take advantage of the existing state in the scan chain in order to reduce the number of required shifts needed to generate the next state. An artifact of this assumption is that existing errors from one cycle can propagate through the decompression process to subsequent cycles of the testing, which is not what some designers need when, during performance testing, the erroneous states put an otherwise good chip into a potentially destructive state. Previously the only way to create a deterministic initial starting state is to shift it into the entire scan string. A scan chain wide reset could ensure there is a deterministic initial starting state prior to decompressing each pattern, or logic similar to the X-blocking circuitry presented in U.S. patent application Ser. No. 10/750,949, which is also shown in FIGS. 18a and 18b, could be employed to set the scan string to 0s while decompressing the next test. Both these and other alternatives provide ways to limit the clocking overhead of deterministic tests.
Finally, requiring deterministic tests in chips with multiple scan strings requires modifications to the existing compression methodology, and as a result, can eliminate the need to control the clocking of individual scan strings in the chips. Eliminating the dependency on prior test results to generate the next test also decouples the compression computation from Automatic Test Pattern Generation (ATPG) or simulation, and may, with proper resetting, permanently decouple the individual tests from each other, allowing reorganization of the vectors at manufacturing test.